
package com.enjoyiot.module.bms.sevice.asset;

import com.enjoyiot.framework.common.pojo.PageResult;
import com.enjoyiot.module.bms.controller.admin.asset.vo.AssetUpdateStatusReqVO;
import com.enjoyiot.module.bms.dal.dataobject.AssetDO;
import com.enjoyiot.module.bms.controller.admin.asset.vo.AssetCreateReqVO;
import com.enjoyiot.module.bms.controller.admin.asset.vo.AssetPageReqVO;
import com.enjoyiot.module.bms.controller.admin.asset.vo.AssetUpdateReqVO;

import javax.validation.Valid;
import java.util.List;

public interface AssetService {

    /**
     * 创建资产信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createAsset(@Valid AssetCreateReqVO createReqVO);

    /**
     * 更新资产信息
     *
     * @param updateReqVO 更新信息
     */
    void updateAsset(@Valid AssetUpdateReqVO updateReqVO);

    /**
     * 删除资产信息
     *
     * @param id 编号
     */
    void deleteAsset(Long id);

    /**
     * 获得资产信息
     *
     * @param id 编号
     * @return 资产信息
     */
    AssetDO getAsset(Long id);

    /**
     * 获得资产信息分页
     *
     * @param pageReqVO 分页查询
     * @return 资产信息分页
     */
    PageResult<AssetDO> getAssetPage(AssetPageReqVO pageReqVO);

    void updateAssetStatus(Long id, Integer status);

    List<AssetDO> getSimpleAssetList(String assetName);
}
